home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1997 July / macformat52.iso / mac / Demos / InfoGenie 2 / InfoGenie™ AppleScript Folder / AppleScript Instructions / IG AppleScript Classes next >
Text File  |  1996-02-24  |  11KB  |  167 lines

  1. AppleScripting InfoGenie™
  2.  
  3. If you have not yet read the IG AppleScript Intro file, please do that before going on with this one.
  4.  
  5. Classes
  6.  
  7. Classes are the kinds of objects which InfoGenie recognizes in its Apple Events. A class may have properties and/or be composed of other classes.
  8.  
  9. Most of InfoGenie's classes are text objects. These include characters, words, paragraphs, cells, records, and datafiles. A datafile contains records, which may consist of cells and/or paragraphs, which consist of words, which in turn consist of characters. We may also look at a datafile as containing paragraphs, words, and characters, and a record as containing words and characters. There is also the text class, which is simply a range of characters, and the insertion point class, which refers to locations between characters. The term for a class which may be contained in another class, such as characters in a word, is element. So, a character is an element of a word, a cell is an element of a record, and so on.
  10.  
  11. In reality, except for the insertion point class, all the text object classes are just ranges of characters. Each text object has at least two properties—length, which is the number of characters in the object, and offset, which is the offset of the first character in the object from the start of the datafile. Insertion points contain no characters, so they always have a length of zero.
  12.  
  13. In addition to length and offset, cells have a name property. Along with the normal reference by index, which can be used with all text objects, cells may be referred to by name. Cells are the only text objects which are specified only in relation to a record. For example, we can refer to the 2000th word of a datafile which might contain 30,000 words, but even if a datafile has 3000 records with 10 cells each, we cannot refer to the 2000th cell of the datafile. Instead, we must refer to the 10th cell of the 200th record. In general, it is probably safer to refer to cells by name, rather than by index.
  14.  
  15. The datafile class has a large number of properties. Its properties include: current record (number of the currently displayed record), field based (true if field-based, false if freeform), name  (the name of the datafile), selection (content of selected text), selection start (offset of the first character of the current selection from start of datafile ), selection length (number of characters in the current selection), text block (extracted from the current record in accordance with Text Block Layout settings), view (Basic View or List View), font (font for Basic View text), size  (point size for Basic View text), and style (style for Basic View text). The properties related to selections may be useful when dealing with the result of the find event, which results in the selection of the text which it finds. Unlike windows, datafiles are indexed by the order in which they were opened, not by the order in which their windows are stacked. As with cells, it is probably safer to refer to datafiles by name, rather than by index, since that will not change when other datafiles are opened or closed.
  16.  
  17. The two classes which are not text objects are the application class, which refers to InfoGenie, itself, and the file class, which refers to files on disk. The file class has no properties, while the application class has two, name and version. Neither of these classes has any elements.
  18.  
  19. InfoGenie does not support two common classes, document and window. A document would be essentially the same as a datafile. A window is much like a datafile, except that it might have some additional properties, such as the window bounds, which InfoGenie does not support in its Apple Events. It was felt that their inclusion would complicate matters without adding any utility.
  20.  
  21. Below is a full explanation of all the InfoGenie classes, based on its Apple Events dictionary.
  22.  
  23. (Note: In the following, [r/o] means that a property is read-only. That is, its value can be read (using the get event), but cannot be changed. If there is no [r/o], then the value of the property can be changed (using the set event).
  24.  
  25. Class application - An application program
  26. Plural form -
  27.     applications
  28. Properties -
  29.     current datafile string  [r/o]  -- The name of the current (frontmost) datafile
  30.     Datafile menu  list of strings  [r/o]  -- The names of the datafiles in the Datafiles menu
  31.     name  string  [r/o]  -- The name of the application
  32.     version  string  [r/o]  -- The version of the application
  33.  
  34. Class cell - cell (a field within an individual record)
  35. Plural form -
  36.     cells
  37. Elements -
  38.     cell by name, by numeric index, as a range of elements, satisfying a test
  39.     character by numeric index, as a range of elements, satisfying a test
  40.     insertion point before/after another element
  41.     paragraph by numeric index, as a range of elements, satisfying a test
  42.     record by numeric index, as a range of elements, satisfying a test
  43.     text as a range of elements
  44.     word by numeric index, as a range of elements, satisfying a test
  45. Properties -
  46.     length  integer  [r/o]  -- Length of text in cell (number of characters)
  47.     name  string  -- Name of the field containing the cell
  48.     offset  integer  [r/o]  -- Offset of the first character of a cell from the start of the
  49.                                        datafile  (1-based)
  50.  
  51. Class character - A character
  52. Plural form -
  53.     characters
  54. Elements -
  55.     character by numeric index, as a range of elements, satisfying a test
  56.     insertion point before/after another element
  57.     paragraph by numeric index, as a range of elements, satisfying a test
  58.     record by numeric index, as a range of elements, satisfying a test
  59.     text as a range of elements
  60.     word by numeric index, as a range of elements, satisfying a test
  61. Properties -
  62.     length  integer  [r/o]  -- Length of character (always 1)
  63.     offset  integer  [r/o]  -- Offset of a character from the start of the datafile (1-based)
  64.  
  65. Class datafile - An InfoGenie datafile
  66. Plural form -
  67.     datafiles
  68. Elements -
  69.     cell by name, by numeric index, as a range of elements, satisfying a test
  70.     character by numeric index, as a range of elements, satisfying a test
  71.     datafile by numeric index, by name
  72.     insertion point before/after another element
  73.     paragraph by numeric index, as a range of elements, satisfying a test
  74.     record by numeric index, as a range of elements, satisfying a test
  75.     text as a range of elements
  76.     word by numeric index, as a range of elements, satisfying a test
  77. Properties -
  78.     cell names  list of strings  [r/o]  -- Names of the cells (fields) in the datafile
  79.     current record  integer  [r/o]  -- Number of the currently displayed record
  80.     field based  boolean  [r/o]  -- Is the datafile field-based? (true if field-based, false if 
  81.                                                                                freeform)
  82.     name  string  [r/o]  -- The name of the datafile
  83.     selection  string  [r/o]  -- Content of selected text
  84.     selection start  integer  [r/o]  -- Offset of the first character of the current selection 
  85.                                                                                     from start of datafile (1-based)
  86.     selection length  integer  [r/o]  -- Number of characters in the current selection
  87.     text block  string  [r/o]  -- Text block (usually an address), extracted from the current 
  88.                                                                       record in accordance with Text Block Layout settings
  89.     view  basic view/list view  -- Current view - Basic View or List View
  90.     font  string  -- Font for Basic View text
  91.     size  integer  -- Point size for Basic View text
  92.     style  plain/bold/italic/outline/shadow/underline  -- Style for Basic View text
  93.  
  94. Class file - A file
  95. Plural form -
  96.     files
  97.  
  98. Class insertion point - An insertion location between two objects
  99. Plural form -
  100.     insertion points
  101. Properties -
  102.     length  integer  [r/o]  -- Length of insertion point (always zero)
  103.     offset  integer  [r/o]  -- Offset of an insertion point from start of datafile (1-based)
  104.  
  105. Class paragraph - A paragraph
  106. Plural form -
  107.     paragraphs
  108. Elements -
  109.     character by numeric index, as a range of elements, satisfying a test
  110.     insertion point before/after another element
  111.     paragraph by numeric index, as a range of elements, satisfying a test
  112.     record by numeric index, as a range of elements, satisfying a test
  113.     text as a range of elements
  114.     word by numeric index, as a range of elements, satisfying a test
  115. Properties -
  116.     length  integer  [r/o]  -- Length of paragraph (in characters - includes the ending 
  117.                                                              carriage return, if there is one)
  118.     offset  integer  [r/o]  -- Offset of the first character of a paragraph from the start of the
  119.                                        datafile (1-based)
  120.  
  121. Class record - record (same as a row in most database applications)
  122. Plural form -
  123.     records
  124. Elements -
  125.     cell by name, by numeric index, as a range of elements, satisfying a test
  126.     character by numeric index, as a range of elements, satisfying a test
  127.     insertion point before/after another element
  128.     paragraph by numeric index, as a range of elements, satisfying a test
  129.     record by numeric index, as a range of elements, satisfying a test
  130.     text as a range of elements
  131.     word by numeric index, as a range of elements, satisfying a test
  132. Properties -
  133.     length  integer  [r/o]  -- Length of text in record (in characters)
  134.     offset  integer  [r/o]  -- Offset of the first character of a record from the start of the
  135.                                        datafile (1-based)
  136.  
  137. Class text - a range of text
  138. Elements -
  139.     cell by name, by numeric index, as a range of elements, satisfying a test
  140.     character by numeric index, as a range of elements, satisfying a test
  141.     insertion point before/after another element
  142.     paragraph by numeric index, as a range of elements, satisfying a test
  143.     record by numeric index, as a range of elements, satisfying a test
  144.     text as a range of elements
  145.     word by numeric index, as a range of elements, satisfying a test
  146. Properties -
  147.     length  integer  [r/o]  -- Length of text (in characters)
  148.     offset  integer  [r/o]  -- Offset of the first character of a text range from the start of the
  149.                                        datafile (1-based)
  150.  
  151. Class word - A word
  152. Plural form -
  153.     words
  154. Elements -
  155.     character by numeric index, as a range of elements, satisfying a test
  156.     insertion point before/after another element
  157.     paragraph by numeric index, as a range of elements, satisfying a test
  158.     record by numeric index, as a range of elements, satisfying a test
  159.     text as a range of elements
  160.     word by numeric index, as a range of elements, satisfying a test
  161. Properties -
  162.     length  integer  [r/o]  -- Length of text in word (in characters)
  163.     offset  integer  [r/o]  -- Offset of the first character of a word from the start of the
  164.                                                             datafile (1-based)
  165.  
  166. Events
  167. See the IG AppleScript Events file for information on Apple Events supported by InfoGenie.